package ballgame;

import java.awt.*;
import javax.swing.*;

/**
 * @author 刘鹏飞
 * @ClassName BallGame
 * @Date 2024/11/28 19:27
 * @Created by 刘鹏飞
 * @Description
 */
public class BallGame extends JFrame {

    //  导入图片
    Image ball= Toolkit.getDefaultToolkit().getImage("image/ball.png");
    Image desk= Toolkit.getDefaultToolkit().getImage("image/desk.png");

    // 指定小球的初始位置
    double x = 200;
    double y = 200;

    // 小球的方向
    boolean right = true;

    // 小球的运动角度
    double degree=3.14/3;  //  弧度  60度

    //  绘制窗口
    public void paint(Graphics g){
        System.out.println("窗口绘制了一次");
        g.drawImage(desk,0, 0, null);
        g.drawImage(ball,(int)x, (int)y, null);

        //根据角度degree改变小球坐标
        x = x+ 10*Math.cos(degree);
        y = y +10*Math.sin(degree);

        // 检测边缘，改变运动方向
        if(y<40+40|| y>501-30-40){  // 碰到上下边缘
            degree=-degree;
        } else if (x>856-40-30|x<30) {  // 碰到左右边缘
            degree=3.14-degree;
        }

    }




    // 创建窗口
    void launchFrame(){
        setSize(856,501);  // 设置窗口的大小
        setLocation(100,100);   // 设置窗口创建的位置
        setVisible(true);             //  设置窗口可见

        while(true){
            repaint();   //  调用repaint() 方法，窗口即可重画
            try {
                Thread.sleep(20);  // 1000/40 --> 一秒画25次
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }


    }



    public static void main(String[] args) {


        System.out.println("我的小游戏开始运行了");


        BallGame ballGame = new BallGame();
        ballGame.launchFrame();  // 初始化窗口


    }
}
